package com.example.keshe;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

import java.io.IOException;

/**
 * 主视图控制器类，包含打开服装基本信息管理、服装销售管理、服装库存管理以及退出系统的方法。
 */
public class MainView {

    /**
     * 打开服装基本信息管理视图的方法.
     *
     * @param actionEvent 事件对象。
     */
    @FXML
    private void openClothing(ActionEvent actionEvent) {
        loadAndShowFXML("ClothingView.fxml", "服装基本信息管理");
    }

    /**
     * 打开服装销售管理视图的方法。
     *
     * @param actionEvent 事件对象。
     */
    @FXML
    private void openSale(ActionEvent actionEvent) {
        loadAndShowFXML("SaleView.fxml", "服装销售管理");
    }

    /**
     * 打开服装库存管理视图的方法.
     *
     * @param actionEvent 事件对象。
     */
    @FXML
    private void openInventory(ActionEvent actionEvent) {
        loadAndShowFXML("InventoryView.fxml", "服装库存管理");
    }

    /**
     * 退出系统的方法。
     *
     * @param actionEvent 事件对象。
     */
    @FXML
    private void exitSystem(ActionEvent actionEvent) {
        System.exit(0); // 处理退出系统的逻辑
    }

    /**
     * 加载并显示FXML文件的通用方法。
     *
     * @param fxmlFileName FXML文件名。
     * @param stageTitle   新的Stage标题。
     */
    private void loadAndShowFXML(String fxmlFileName, String stageTitle) {
        try {
            // 加载FXML文件
            FXMLLoader loader = new FXMLLoader(getClass().getResource(fxmlFileName));
            Parent root = loader.load();
            // 创建新的Stage和Scene
            Stage stage = new Stage();
            Scene scene = new Scene(root);
            // 设置Stage的标题和Scene
            stage.setTitle(stageTitle);
            stage.setScene(scene);
            stage.show();// 显示新的Stage
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
